﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using DevExpress.XtraEditors;

namespace PRE.Catalog
{
    public partial class frmPhieumuon : DevExpress.XtraEditors.XtraForm
    {
        DAL.Entities_DAL.PHIEU_MUON_TRA_DAL _pmt = new DAL.Entities_DAL.PHIEU_MUON_TRA_DAL();
        DAL.Entities_DAL.CTPMT_DAL _ct = new DAL.Entities_DAL.CTPMT_DAL();
        DAL.Entities_DAL.QLTB_DAL _qltb = new DAL.Entities_DAL.QLTB_DAL();
        DAL.Entities_DAL.THIETBI_DAL _tb = new DAL.Entities_DAL.THIETBI_DAL();
        BLL.Entities_BLL.PMT_BLL _bll = new BLL.Entities_BLL.PMT_BLL();
        public frmPhieumuon()
        {
            InitializeComponent();
        }
        DataTable _tam;
        private void cmdTaophieu_Click(object sender, EventArgs e)
        {
            try
            {
                if (cbMSSV.Text == "")
                {
                    MessageBox.Show("Thông tin không được để trống!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    var o = new DAL.Entities.PHIEU_MUON_TRA
                    {
                        MA_PMT = txtSTTPM.Text,
                        NGAY_LAP = Convert.ToDateTime(dtMgaymuon.EditValue + ""),
                        LOAI_PHIEU = cbLoaiphieu.Text,
                        MA_NV = "NV01",
                        MSSV = cbMSSV.Text

                    };

                    //them
                    var oki = _pmt.Insert(o);
                    if (oki)
                    {
                        MessageBox.Show("Đã lưu thành công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    }
                    else
                    {
                        MessageBox.Show("Lỗi! Lưu thất bại", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    }
                }
            }
            catch { };
        }

        private void cmdTao_Click(object sender, EventArgs e)
        {
            DataTable _ma = _pmt.Select_max();
            if (_ma != null)
                if (_ma.Rows.Count > 0)
                {
                    string ma = _bll.AddID(_ma.Rows[0]["id"] + "");
                    txtSTTPM.Text = ma;
                }
        }

        private void frmPhieumuon_Load(object sender, EventArgs e)
        {
            DataTable _dt = _pmt.load_DT();
            cbMSSV.Properties.DataSource = _dt;

            DataTable _phong = _pmt.load_Phong();
            cbMaphong.Properties.DataSource = _phong;

            DataTable tb = _tb.load_TB();
            cbMatb.Properties.DataSource = tb;
        }

        private void cmdNhan_Click(object sender, EventArgs e)
        {
            try
            {
                var o = new DAL.Entities.CT_PMT
                {
                    MA_PMT = txtSTTPM.Text,
                    NGAY_LAP = Convert.ToDateTime(dtMgaymuon.EditValue + ""),
                    LOAI_PHIEU = cbLoaiphieu.Text,
                    MA_PHONG = cbMaphong.EditValue + "",
                    MA_TB = cbMatb.EditValue + "",
                    SL_MUON_TRA = txtSLnhan.Text,
                };


                int slcl = Convert.ToInt32(txtSL.Text) - Convert.ToInt32(txtSLnhan.Text);
                var kt = _qltb.cap_nhat_qltb(slcl, cbMatb.EditValue + "", cbMaphong.EditValue + "");


                //them
                var oki = _pmt.Insert_CT(o);
                if (oki && kt)
                {

                    MessageBox.Show("Đã lưu thành công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    //DataTable _loadlai = _qltb.kt_thietbi(cbMaphong.EditValue + "", cbMatb.EditValue + "");
                    //DataTable _loadlai = _tb.load_tb_theo_ltb(cbMatb.EditValue + "");
                    //dsQLTB.DataSource = _loadlai;
                     _dsphong = _pmt.load_qltb(cbMaphong.EditValue + "");
                    dsQLTB.DataSource = _dsphong;

                    string _is = txtSTTPM.Text;
                    _tam = _pmt.load_ctpmt1(_is);
                    dsPM.DataSource = _tam;
                }
                else
                {
                    MessageBox.Show("Lỗi! Lưu thất bại", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);

                }
            }
            catch { MessageBox.Show("Thông tin không đúng định dạng!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error); };
        }

        private void cmdIn_Click(object sender, EventArgs e)
        {
            string _ma = txtSTTPM.Text;
            var ngay = Convert.ToDateTime(dtMgaymuon.EditValue +"");
            var loai = "PHIEU_MUON";
            var frm = new Report.Report_Base();
            var xr = new Reports.XR_PMT();
            xr.DataSource = _pmt.dsPMT(_ma, ngay, loai);
            frm.SetReport(xr);
            frm.Show();
        }
        DataTable _dsphong;
        private void cbMaphong_EditValueChanged(object sender, EventArgs e)
        {
            try
            {
                 _dsphong = _pmt.load_qltb(cbMaphong.EditValue + "");
                dsQLTB.DataSource = _dsphong;
                cbMatb.DataBindings.Clear();
                txtSL.DataBindings.Clear();
                cbMatb.DataBindings.Add("EditValue", _dsphong, ".MA_TB");
                txtSL.DataBindings.Add("EditValue", _dsphong, ".SL_NHAN");
            }
            catch { MessageBox.Show("Load dữ liệu không đúng!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error); };
        }
        //bay loi k cho nhap ky tu
        private static bool IsNumber(string val)
        {
            if (val != "")
                return Regex.IsMatch(val, @"^[0-9]*$");
            else return true;
        }
        private void txtSLnhan_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((!char.IsNumber(e.KeyChar)) && (!e.Equals(Keys.Back)) && (!char.IsDigit(e.KeyChar)) && (!char.IsControl(e.KeyChar)))
            {
                MessageBox.Show("Lỗi! Chỉ nhập kí tự số", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                e.Handled = true;
            }
            
        }

        private void txtSLnhan_EditValueChanged(object sender, EventArgs e)
        {
            try
            {
                if (Convert.ToInt32(txtSLnhan.Text) > Convert.ToInt32(txtSL.Text))
                {

                    MessageBox.Show("Số lượng nhập lớn hơn số lượng hiện có!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;

                }
            }
            catch { };
            
        }

        private void dsQLTB_Click(object sender, EventArgs e)
        {
            
            cbMatb.DataBindings.Clear();
            txtSL.DataBindings.Clear();
            cbMatb.DataBindings.Add("EditValue", _dsphong, ".MA_TB");
            txtSL.DataBindings.Add("EditValue", _dsphong, ".SL_NHAN");
        }

     
    }
}